//
//  AppHandyMethods.m
//  littleVideoGo
//
//  Created by WeiWei on 2018/8/9.
//  Copyright © 2018年 Liu. All rights reserved.
//

#import "AppHandyMethods.h"
#import <CommonCrypto/CommonDigest.h>

@implementation AppHandyMethods

+ (NSString*)getTimeStamp {
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init].fp_dateFormat(@"yyyy-MM-dd HH:mm:ss");
    return [formatter stringFromDate:[NSDate date]];
}

+ (NSString *)md5:(NSString*)string {
    const char *cStr = [string UTF8String];
    unsigned char result[16];
    CC_MD5(cStr, (CC_LONG)strlen(cStr), result);
    NSString * md5Str = [NSString stringWithFormat:
                         @"%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
                         result[0], result[1], result[2], result[3],
                         result[4], result[5], result[6], result[7],
                         result[8], result[9], result[10], result[11],
                         result[12], result[13], result[14], result[15]
                         ];
    return md5Str;
}

+ (NSString*)getSignWithRequestParameters:(NSDictionary *)requestParameters {
    NSArray *keysArray = [requestParameters allKeys];
    NSArray *sortedArray = [keysArray sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2){
        return [obj1 compare:obj2 options:NSLiteralSearch];
    }];
    NSString *signOriginal = [NSString string];
    for (NSString *key in sortedArray) {
        NSString *value = [requestParameters objectForKey: key];
        signOriginal = [signOriginal stringByAppendingString:[NSString stringWithFormat:@"%@=%@&", key, value]];
    }
    signOriginal = [signOriginal stringByAppendingString:[NSString stringWithFormat:@"secret=%@", APPSECRET]];
    NSString *sign = [self md5:signOriginal];
    return sign;
}

@end
